我想要一个正则表达式来检查一个字符串是否只包含大小写字母、数字和下划线。
要匹配仅包含这些字符(或空字符串)的字符串,请尝试
"^[a-zA-Z0-9_]*$"
这适用于 .NET 正则表达式,可能也适用于许多其他语言。
分解它:
^ : start of string [ : beginning of character group a-z : any lowercase letter A-Z : any uppercase letter 0-9 : any digit _ : underscore ] : end of character group * : zero or more of the given characters $ : end of string
如果您不想允许空字符串,请使用+代替*.
+
*
正如其他人指出的那样,一些正则表达式语言有[a-zA-Z0-9_]. 在 .NET 正则表达式语言中,您可以打开 ECMAScript 行为并\w用作简写(yielding ^\w*$or ^\w+$)。请注意,在其他语言中,默认情况下在 .NET 中,\w范围更广,并且也会匹配其他类型的 Unicode 字符(感谢 Jan 指出这一点)。因此,如果您真的打算只匹配这些字符,那么使用显式(较长)形式可能是最好的。
[a-zA-Z0-9_]
\w
^\w*$
^\w+$